package com.zone.service.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.zone.common.core.annotation.Excel;
import com.zone.common.core.web.domain.BaseEntity;

/**
 * 设备管理表对象 zone_device
 * 
 * @author liuyang
 * @date 2025-11-15
 */
public class Device extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 设备间编号 */
    private String deviceRoomNumber;

    /** 设备间有无 */
    private Integer isHaveDeviceRoom;

    /** 设备编号 */
    @Excel(name = "设备编号")
    private String deviceNumber;

    /** 设备简称（同设备地址） */
    @Excel(name = "设备简称", readConverterExp = "同=设备地址")
    private String deviceAbbreviation;

    /** 系统编号 */
    @Excel(name = "系统编号")
    private String systemNumber;

    /** 中转箱编号 */
    @Excel(name = "中转箱编号")
    private String transferBoxNumber;

    /** 设备状态（未开通、启用、停机、撤机） */
    @Excel(name = "设备状态", readConverterExp = "未=开通、启用、停机、撤机")
    private String deviceStatus;

    /** 设备型号id */
    @Excel(name = "设备型号id")
    private Long modelId;

    /** 锁类型（密码锁、机械锁） */
    @Excel(name = "锁类型", readConverterExp = "密=码锁、机械锁")
    private String lockType;

    /** 锁具编号 */
    @Excel(name = "锁具编号")
    private String lockTool;

    /** 电子锁编号 */
    @Excel(name = "电子锁编号")
    private String electronicLockId;

    /** 所属网点id */
    @Excel(name = "所属网点id")
    private Long bankId;

    /** 设备备注 */
    @Excel(name = "设备备注")
    private String deviceRemark;

    /** 密码备注 */
    @Excel(name = "密码备注")
    private String passwordRemark;

    /** 接机日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "接机日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date connectionDate;

    /** 撤机日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "撤机日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date removalDate;

    /** 重新开通日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "重新开通日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reOpenDate;

    /** 市区/郊区 */
    @Excel(name = "市区/郊区")
    private Long cityOrDistrict;

    /** 跨市 */
    @Excel(name = "跨市")
    private Long crossCity;

    /** 交吞卡地址 */
    @Excel(name = "交吞卡地址")
    private String swipingCardAddress;

    /** 有无设备间 */
    @Excel(name = "有无设备间")
    private String hasDeviceRoom;

    /** 吉箱配箱 */
    @Excel(name = "吉箱配箱")
    private Long emptyBoxCounts;

    /** 尾箱个数 */
    @Excel(name = "尾箱个数")
    private Long cashboxCounts;

    /** 配钞箱前缀 */
    @Excel(name = "配钞箱前缀")
    private String preindex;

    /** 虚拟柜员号 */
    @Excel(name = "虚拟柜员号")
    private String virtualMachineNumber;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setDeviceRoomNumber(String deviceRoomNumber) 
    {
        this.deviceRoomNumber = deviceRoomNumber;
    }

    public String getDeviceRoomNumber() 
    {
        return deviceRoomNumber;
    }

    public void setIsHaveDeviceRoom(Integer isHaveDeviceRoom) 
    {
        this.isHaveDeviceRoom = isHaveDeviceRoom;
    }

    public Integer getIsHaveDeviceRoom() 
    {
        return isHaveDeviceRoom;
    }

    public void setDeviceNumber(String deviceNumber) 
    {
        this.deviceNumber = deviceNumber;
    }

    public String getDeviceNumber() 
    {
        return deviceNumber;
    }

    public void setDeviceAbbreviation(String deviceAbbreviation) 
    {
        this.deviceAbbreviation = deviceAbbreviation;
    }

    public String getDeviceAbbreviation() 
    {
        return deviceAbbreviation;
    }

    public void setSystemNumber(String systemNumber) 
    {
        this.systemNumber = systemNumber;
    }

    public String getSystemNumber() 
    {
        return systemNumber;
    }

    public void setTransferBoxNumber(String transferBoxNumber) 
    {
        this.transferBoxNumber = transferBoxNumber;
    }

    public String getTransferBoxNumber() 
    {
        return transferBoxNumber;
    }

    public void setDeviceStatus(String deviceStatus) 
    {
        this.deviceStatus = deviceStatus;
    }

    public String getDeviceStatus() 
    {
        return deviceStatus;
    }

    public void setModelId(Long modelId) 
    {
        this.modelId = modelId;
    }

    public Long getModelId() 
    {
        return modelId;
    }

    public void setLockType(String lockType) 
    {
        this.lockType = lockType;
    }

    public String getLockType() 
    {
        return lockType;
    }

    public void setLockTool(String lockTool) 
    {
        this.lockTool = lockTool;
    }

    public String getLockTool() 
    {
        return lockTool;
    }

    public void setElectronicLockId(String electronicLockId) 
    {
        this.electronicLockId = electronicLockId;
    }

    public String getElectronicLockId() 
    {
        return electronicLockId;
    }

    public void setBankId(Long bankId) 
    {
        this.bankId = bankId;
    }

    public Long getBankId() 
    {
        return bankId;
    }

    public void setDeviceRemark(String deviceRemark) 
    {
        this.deviceRemark = deviceRemark;
    }

    public String getDeviceRemark() 
    {
        return deviceRemark;
    }

    public void setPasswordRemark(String passwordRemark) 
    {
        this.passwordRemark = passwordRemark;
    }

    public String getPasswordRemark() 
    {
        return passwordRemark;
    }

    public void setConnectionDate(Date connectionDate) 
    {
        this.connectionDate = connectionDate;
    }

    public Date getConnectionDate() 
    {
        return connectionDate;
    }

    public void setRemovalDate(Date removalDate) 
    {
        this.removalDate = removalDate;
    }

    public Date getRemovalDate() 
    {
        return removalDate;
    }

    public void setReOpenDate(Date reOpenDate) 
    {
        this.reOpenDate = reOpenDate;
    }

    public Date getReOpenDate() 
    {
        return reOpenDate;
    }

    public void setCityOrDistrict(Long cityOrDistrict) 
    {
        this.cityOrDistrict = cityOrDistrict;
    }

    public Long getCityOrDistrict() 
    {
        return cityOrDistrict;
    }

    public void setCrossCity(Long crossCity) 
    {
        this.crossCity = crossCity;
    }

    public Long getCrossCity() 
    {
        return crossCity;
    }

    public void setSwipingCardAddress(String swipingCardAddress) 
    {
        this.swipingCardAddress = swipingCardAddress;
    }

    public String getSwipingCardAddress() 
    {
        return swipingCardAddress;
    }

    public void setHasDeviceRoom(String hasDeviceRoom) 
    {
        this.hasDeviceRoom = hasDeviceRoom;
    }

    public String getHasDeviceRoom() 
    {
        return hasDeviceRoom;
    }

    public void setEmptyBoxCounts(Long emptyBoxCounts) 
    {
        this.emptyBoxCounts = emptyBoxCounts;
    }

    public Long getEmptyBoxCounts() 
    {
        return emptyBoxCounts;
    }

    public void setCashboxCounts(Long cashboxCounts) 
    {
        this.cashboxCounts = cashboxCounts;
    }

    public Long getCashboxCounts() 
    {
        return cashboxCounts;
    }

    public void setPreindex(String preindex) 
    {
        this.preindex = preindex;
    }

    public String getPreindex() 
    {
        return preindex;
    }

    public void setVirtualMachineNumber(String virtualMachineNumber) 
    {
        this.virtualMachineNumber = virtualMachineNumber;
    }

    public String getVirtualMachineNumber() 
    {
        return virtualMachineNumber;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("deviceRoomNumber", getDeviceRoomNumber())
            .append("isHaveDeviceRoom", getIsHaveDeviceRoom())
            .append("deviceNumber", getDeviceNumber())
            .append("deviceAbbreviation", getDeviceAbbreviation())
            .append("systemNumber", getSystemNumber())
            .append("transferBoxNumber", getTransferBoxNumber())
            .append("deviceStatus", getDeviceStatus())
            .append("modelId", getModelId())
            .append("lockType", getLockType())
            .append("lockTool", getLockTool())
            .append("electronicLockId", getElectronicLockId())
            .append("bankId", getBankId())
            .append("deviceRemark", getDeviceRemark())
            .append("passwordRemark", getPasswordRemark())
            .append("connectionDate", getConnectionDate())
            .append("removalDate", getRemovalDate())
            .append("reOpenDate", getReOpenDate())
            .append("cityOrDistrict", getCityOrDistrict())
            .append("crossCity", getCrossCity())
            .append("swipingCardAddress", getSwipingCardAddress())
            .append("hasDeviceRoom", getHasDeviceRoom())
            .append("emptyBoxCounts", getEmptyBoxCounts())
            .append("cashboxCounts", getCashboxCounts())
            .append("preindex", getPreindex())
            .append("virtualMachineNumber", getVirtualMachineNumber())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
